package com.syg.validation.controller;

import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import javax.validation.constraints.Min;

/**
 * GET请求一般会使用requestParam/PathVariable传参。如果参数比较多(比如超过6个)，还是推荐使用DTO对象接收。
 * @author syg
 */
@Validated
@RestController
public class ValidationController {

    /**
     * get请求时,必须在Controller类上标注@Validated注解，并在入参上声明约束注解(如@Min等)。如果校验失败，会抛出ConstraintViolationException异常。
     * @return
     */
    @GetMapping("/save/{userId}")
    public Long saveUser(@PathVariable("userId") @Min(10L) Long userId) {
        // 校验通过，才会执行业务逻辑处理
        return userId;
    }
}
